/**
 *autor:Andre, Renato
 *data:07/05/2010
 *descricao:inicio do Pessoa
 *obs:esboco
 */
package com.condominio.model;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.UniqueConstraint;



@Entity
public class Pessoa {
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private int id;
	private String nome;
	@Column(unique=true)
	private String login;
	private String senha;
	private int privilegio;
	@Column(unique=true)
	private int apartamento;
	
	@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy="pessoa")
	private List<Conta> contas=new ArrayList();
	
	@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy="pessoa")
	private List<Recado>recados=new ArrayList();

	public Pessoa() {}
	public Pessoa(String nome, String login, String senha, int privilegio,int apartamento) {
		super();
		this.nome = nome;
		this.login = login;
		this.senha = senha;
		this.privilegio = privilegio;
		this.apartamento=apartamento;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getLogin() {
		return login;
	}
	public void setLogin(String login) {
		this.login = login;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	public int getPrivilegio() {
		return privilegio;
	}
	public void setPrivilegio(int privilegio) {
		this.privilegio = privilegio;
	}
	
	//-----------contas------------//
	
	public List<Conta> getContas() {
		return contas;
	}
	public void setContas(List<Conta> contas) {
		this.contas = contas;
	}
	public void addConta(Conta c){
		this.contas.add(c);
	}
	public void removeContaByConta(Conta c){
		this.contas.remove(c);
	}
	public void removeContaById(int id){
		this.contas.remove(id);
	}
	public Conta findConta(int id){
		return this.contas.get(id);
	}
	//-------recados-----------//
	public List<Recado> getRecados() {
		return recados;
	}
	public void setRecados(List<Recado> recados) {
		this.recados = recados;
	}
	public int getApartamento() {
		return apartamento;
	}
	public void setApartamento(int apartamento) {
		this.apartamento = apartamento;
	}
	public void addRecado(Recado c){
		this.recados.add(c);
	}
	public void removeRecadoByRecado(Recado c){
		this.recados.remove(c);
	}
	public void removeRecadoById(int id){
		this.recados.remove(id);
	}
	public Recado findRecado(int id){
		return this.recados.get(id);
	}
}


